Python 提取字符串中第一个数字
def getNumFromString(sss):
slen = len(sss)
ret_value = 0
sflag = 0
zflag = 1
pnflag = 1
scientificEnumerationFlag = 0
cnt = 1
power_num = 0
power_pnFlag = 1
for i in range(slen):
if sss[i].isdigit():
sflag = 1
if scientificEnumerationFlag:
power_num = power_num*10 + int(sss[i])
else:
if zflag == 1:
ret_value = ret_value*10 + int(sss[i])
else:
divnum = 10**cnt
ret_value = ret_value + float(sss[i])/(divnum)
cnt+=1
else:
if sflag == 1:
if sss[i] == '.':
zflag = 0
elif sss[i] == 'e' and (sss[i+1] == '+' or sss[i+1] == '-'):
scientificEnumerationFlag = 1
if(sss[i+1] == '+'):
power_pnFlag = 1
else:
power_pnFlag = -1
else:
if sss[i-1] == 'e' and (sss[i] == '+' or sss[i] == '-'):
continue
else:
break
else:
if sss[i] == '-':
pnflag = -1
return pnflag*ret_value*(10**(power_num*power_pnFlag))